#include<iostream>
#define MAX 20
void citire(int [],int &);
void afisare(int [],int);
void diferenta_absoluta(int a[MAX], int p);
int main()
{
	int a[20],n;
	citire(a,n);
	afisare(a,n);
	diferenta_absoluta(a,n);
	return 0;
}
void citire(int a[MAX],int &m)
{
	int i,n;
	do
	{
		std::cout<<"n=";
		std::cin>>m;
	}while(m<1 || m>MAX);
	for(i=0;i<m;i++)	
	{
		std::cout<<"a["<<i<<"]=";
		std::cin>>a[i];
	}
}
void afisare(int a[MAX],int m)
{
	int i;
	std::cout<<"sirul este(";
	for(i=0;i<m;i++)
		std::cout<<a[i]<<",";
	std::cout<<"\b)\n";
}
void diferenta_absoluta(int a[MAX],int p)
{
	int i,d;
        int cond(int k)
   	{   
		if(k>1) 
			if(x[k]-x[k-1]==1 || x[k]-x[k-1]==-1) 	
				return 0;
       		return 1;
   	}

 	void back(int k)
   	{ 	
		for(int i=1;i<=n;i++)
      			if(!p[i])
      			{ 
				x[k]=i;
				p[i]=1;
				if(cond(k)) 	
					if(k==n) 
						afis();
					else back(k+1);
						p[i]=0;
      			}
   	}	
}
